using Domain;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.Weather
{
    /// <summary>
    /// 天气预报实体
    /// </summary>
    [Table("weathermodels")]
    public class WeatherModel : AuditEntity
    {
        /// <summary>
        /// 城市名称
        /// </summary>
        public string CityName { get; set; }

        /// <summary>
        /// 城市ID（和风天气API中的location ID）
        /// </summary>
        public string CityId { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public double? Longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public double? Latitude { get; set; }

        /// <summary>
        /// 当前温度（摄氏度）
        /// </summary>
        public double? Temperature { get; set; }

        /// <summary>
        /// 最高温度（摄氏度）
        /// </summary>
        public double? MaxTemperature { get; set; }

        /// <summary>
        /// 最低温度（摄氏度）
        /// </summary>
        public double? MinTemperature { get; set; }

        /// <summary>
        /// 湿度（百分比）
        /// </summary>
        public int? Humidity { get; set; }

        /// <summary>
        /// 天气状况描述
        /// </summary>
        public string WeatherCondition { get; set; }

        /// <summary>
        /// 风向
        /// </summary>
        public string WindDirection { get; set; }

        /// <summary>
        /// 风速（公里/小时）
        /// </summary>
        public double? WindSpeed { get; set; }

        /// <summary>
        /// 气压（百帕）
        /// </summary>
        public double? Pressure { get; set; }

        /// <summary>
        /// 能见度（公里）
        /// </summary>
        public double? Visibility { get; set; }

        /// <summary>
        /// 紫外线指数
        /// </summary>
        public int? UvIndex { get; set; }

        /// <summary>
        /// 体感温度（摄氏度）
        /// </summary>
        public double? FeelsLike { get; set; }

        /// <summary>
        /// 云量（百分比）
        /// </summary>
        public int? CloudCover { get; set; }

        /// <summary>
        /// 露点温度（摄氏度）
        /// </summary>
        public double? DewPoint { get; set; }

        /// <summary>
        /// 降水量（毫米）
        /// </summary>
        public double? Precipitation { get; set; }

        /// <summary>
        /// 天气图标代码
        /// </summary>
        public string WeatherIcon { get; set; }

        /// <summary>
        /// 天气更新时间
        /// </summary>
        public DateTime? WeatherUpdateTime { get; set; }

        /// <summary>
        /// 数据来源（如：和风天气）
        /// </summary>
        public string DataSource { get; set; }
    }
}
